package main

import (
	"fmt"
)

type Student struct {
	Name string
}
// 方法-虽然指定了类型，但可以传值，也可以传引用
func (s Student) print() {
	fmt.Println(s.Name)
}

func (s *Student) change() {
	fmt.Println(s.Name)
}

// 函数-指定类型必须一致
func print(s Student) {
	fmt.Println(s.Name)
}

func change(s *Student) {
	fmt.Println(s.Name)
}

func main() {
	var s Student = Student{"张三"}
	s.print()
	print(s)

	// 报错
	// change(s)
	// print(&s)

	// 不会报错
	s.change()
	(&s).print()
}